Advances in chip technology lead to smaller feature sizes. This makes it economically attractive to create chips that include a number of functional modules that can be selectively enabled or disabled on a chip to support the subset of features required for a particular appliance or electronic device in which the chip is to be included. Such a chip is also known as a System on a Chip (SoC). This selective enablement of the functional modules is controlled by One Time Programmable (OTP) memory.
The selection mechanism programs the appropriate values in the OTP memory which enables or disables a functional module on the chip. Examples are proprietary circuits for specific customers, optional functions and/or licensed IP cores. This mechanism makes it possible for the chip manufacturer to manufacture a single chip that can be configured for use in a wide range of appliances.
During the chip manufacturing process, logic circuits are defined by the chip design topology which is expressed in a sequence of production masks that are used to manufacture the chip. The logic circuits include the functional modules that are initialised at a later production step. The chip manufacturing also involves testing of the circuit, (optionally) programming chip unique data in the OTP, and packaging the chip. The sequence of these steps and the number of testing stages can differ between chip manufacturers.
A block diagram of an exemplary prior art chip 10 is shown in FIG. 1. The chip 10 comprises a Read Only Memory (ROM) 12, an OTP memory 14, a Central Processing Unit (CPU) 16 and common logic modules 18, all of which are connected together by means of a CPU bus 20. The chip further comprises several configurable functional modules F1 . . . F8. The OTP memory 14 includes memory locations e1 . . . e8 that control the enablement/activation (or alternatively the disablement/deactivation) of the functional modules F1 . . . F8 respectively. These OTP memory locations e1 . . . e8 can each be written only once with a particular value (active/not active, “0”/“1”) depending on whether it is desired to enable or disable the corresponding functional module F1 . . . F8. In general the memory locations e1 . . . e8 for the functional modules F1 . . . F8 are left unprogrammed (i.e. unwritten) during the chip manufacturing process, although some other values of the OTP memory 14 may be programmed during this process. This programming step typically involves the loading of secret keys and/or similar confidential information onto the chip 10.
As part of the manufacture of an appliance including such a chip 10, the (packaged) chip 10 is placed on a circuit board that provides the electrical interfaces between the various components that are needed for the particular appliance. During the manufacturing process, the OTP memory 14 can be further programmed to personalise (or configure) the chip 10 in accordance with the requirements of the particular appliance. These additional OTP programming steps involve writing active/not active data values to the memory locations e1 . . . e8 of the OTP memory 14. These data values customise the chip 10 for a particular use. This may include disabling certain functions F1 . . . F8 in the chip 10 such that only an intended set of circuits (i.e. functional modules F1 . . . F8) is left active on the chip 10. Some of the personalisation functions may cause complications during testing of the appliance manufacturing (e.g. secure bootstrap, restrict access to certain memory locations or peripherals). Hence, such functional modules are activated in incremental steps during the manufacturing process.
During the manufacturing process of an appliance, errors can occur in the configuration of the chip 10. Errors in the manufacturing process that involve an incorrect programming of the OTP memory 14 can result in a chip 14 that does not have the appropriate functional modules enabled/disabled. Errors resulting in a reduced functional behaviour are generally caught during the testing procedures which form part of the manufacturing process. However, incorrect programming of the OTP memory 14 may also result in undesired functional modules F1 . . . F8 being enabled by mistake during the manufacturing process. This may lead to (hidden) additional functionality in the appliance, which is not always able to be detected during the functional testing procedures that form part of the manufacturing process.
Some chips are equipped with a range of security functionalities, e.g. the ability to securely process data even if the chip 10 includes a general purpose processor running potentially rogue or breached software, or the ability to restrict the boot code to that of a single software vendor only. In order to achieve such goals, the chip 10 is often personalized with some kind of key material. Such key material may be managed by a Trusted Third Party (UP) responsible for the overall security of the chip 10 (under the assumption that SoC security design is sound).
Such security functionalities are typically (permanently) enabled as soon as possible in the process. However, the chip 10 may undergo several production steps, possibly in different locations, all with decreasing trust levels. At each step, only a fraction (not all) of the security measures may be enabled. Thus, at each of the production steps the OTP memory 14 can be further tightened to obtain a higher security level during the following production step. Each of the OTP programming steps may actually be skipped.
The potential for undesired hidden functionality on the chip 10 may result in problems during the deployment of the appliance, and may also impact on parties that derive revenues from the actual use of their IP cores on the chip 10. In order to mitigate this problem, the appliance manufacturer often provides a readout of the OTP memory 14 to the licensing partners and other interested parties. However, since the OTP memory 14 in each type of appliance should have the same memory values for the personalisation of the functional modules F1 . . . F8, there is no real need for the appliance manufacturer to actually provide the observed values from each chip 10. Under pressure, the readout of the OTP memory 14 can be forged by the manufacturer, causing the hidden functionality to remain undetected in the shipped appliances.
Most authentication methods involve the calculation of a code involving a segment of data. As some of the values in the OTP memory 14 may comprise confidential information, it is not possible to use this information in an authentication code.
Hence there is a need for a technology that enables an appliance manufacturer to demonstrate to the various stakeholders that the chip personalisation configuration in each shipped appliance meets the requirements of these stakeholders. The present invention seeks to provide such a technology and associated methods.